package com.seka.control.common.annotation;

import java.lang.annotation.Annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.core.annotation.AliasFor;

import com.seka.control.common.registrar.SekaControlRegistrar;
import com.seka.control.common.registrar.SekaLocalConfig;

/**
 * 开启seka调度中心
 * @author mw
 *
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
@Import({SekaLocalConfig.class,SekaControlRegistrar.class})
public @interface EnableSekaControl {

	/**
	 * 扫描包路径
	 * @return
	 */
	@AliasFor(value="basePackages")
	String[] value() default{};
	
	/**
	 * 扫描包路径
	 * @return
	 */
	@AliasFor(value="value")
	String[] basePackages() default{};
	
    /**
     * 扫描注解类型，多个注解有重复属性时，后面的覆盖前面的
     * @return 扫描注解类型
     */
    Class<? extends Annotation>[] annotations() default SekaDiscoveryTask.class;
}
